package com.efast.cafe.portal.dao.api;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.efast.cafe.portal.bean.api.ApiRequestUriBean;
import com.efast.cafe.portal.entity.api.ApiModuleRequriDef;
import com.efast.cafe.portal.entity.api.ApiRequestUri;

/**
 * <p>接口</p>
 * <p>Table: api_module_requri_def - 模块和请求路径关系定义</p>
 *
 * @since ${.now}
 */

public interface ApiModuleRequriDefDao {

	/**
	 * 新增module & URI关系记录
	 * @param apiRequestUri
	 */
	public void saveUri(ApiRequestUriBean apiRequestUri);
	
	/**
	 * 根据系统id和模块id查询所有模块下的uri
	 * @param systemId
	 * @param module
	 * @return List<ApiRequestUri>
	 * @Date 2017-4-25
	 */
	public List<ApiRequestUriBean> queryUrisByModuleAndSystem(Integer systemId,Integer module);
	
	/**
	 * 将制定uir列表中所有uri添加一个模块下
	 * @param apiRequestUriBeanList
	 * @Date 2017-4-25
	 */
	public void copyModuleUriDefList(List<ApiRequestUriBean> apiRequestUriBeanList);
	
	/**
	 * 将指定模块下的uri复制到另一模块下
	 * @param From
	 * @param to
	 */
	public void copyModuleUrisDef(@Param(value="from")Integer from,@Param(value="to")Integer to,@Param(value="user")String user);
    /**
     * 删除指定uri与指定模块的关系
     * @param moduleId
     * @param uriId
     */
    public void deleteModuleRequestUriDef(@Param(value="moduleId")Integer moduleId,@Param(value="uriId")Integer uriId);
    
    /**
     * 删除制定模块下的所有uri
     * @param moduleId
     */
    public void deleteUriDefByModuleId(@Param(value="moduleId")Integer moduleId);

    /**
     * uri复用
     * @param apiModuleRequriDef
     */
	public void reuseApiUridefine(ApiModuleRequriDef apiModuleRequriDef);
}